package com.wen.service.Impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wen.mapper.ProductTypeMapper;
import com.wen.pojo.ProductType;
import com.wen.pojo.dto.ProductAndProductType;
import com.wen.pojo.dto.ProductDto;
import com.wen.pojo.dto.ProductTypeDto;
import com.wen.service.ProductTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.util.List;

@Service
public class ProductTypeServiceImpl extends ServiceImpl<ProductTypeMapper, ProductType> implements ProductTypeService {

    @Autowired
    private ProductTypeMapper productTypeMapper;

//    @Override
//    public List<ProductAndProductType> getselectProductORProductType() {
//        return productTypeMapper.selectProductORProductType();
//    }

    /**
     * 商品类型管理
     * 带条件查询
     * @param dto
     * @return
     */
    @Override
    public Page<ProductType> queryPage(ProductTypeDto dto,Integer pageNum,Integer size) {

//        QueryWrapper<ProductType> wrapper = new QueryWrapper<ProductType>();
//
//        if (!StringUtils.isEmpty(dto.getTypeName()))
//            wrapper.like("type_name", dto.getTypeName());
//
//        if (!StringUtils.isEmpty(dto.getLevel()))
//            wrapper.eq("level", dto.getLevel());
//
//        if (!StringUtils.isEmpty(dto.getStatus()))
//            wrapper.eq("status", dto.getStatus());
//
//
//        //封装分页参数
//        Page<ProductType> pageParam = new Page<>(pageNum,size);
//
//        //调用分页方法
//        page(pageParam,wrapper);

        Page<ProductType> page = new Page<>(pageNum,size);
        Page<ProductType> dFileIPage = productTypeMapper.selectProductType(page, dto);
        return dFileIPage;

    }

    @Override
    public int addProductType(ProductType productType) {
//        productType.setStatus("C001-1");//是否删除
        return  productTypeMapper.insert(productType);
    }

    @Override
    public  Page<ProductAndProductType> queryProductAndProductTypePage(ProductDto dto, Integer pageNum, Integer size) {

        Page<ProductAndProductType> page = new Page<>(pageNum,size);

        QueryWrapper<ProductAndProductType> wrapper = new QueryWrapper<ProductAndProductType>();

        if (!StringUtils.isEmpty(dto.getProductName()))
            wrapper.like("name", dto.getProductName());

        if (!StringUtils.isEmpty(dto.getOnOff()))
            wrapper.eq("on_off", dto.getOnOff());



        Page<ProductAndProductType> dFileIPage = productTypeMapper.selectProductORProductType(page, wrapper);

        return  dFileIPage;
    }



    @Override
    public Page<ProductAndProductType> getSelectAdvance(ProductDto dto, Integer pageNum, Integer size) {

        Page<ProductAndProductType> page = new Page<>(pageNum,size);
        Page<ProductAndProductType> dFileIPage = productTypeMapper.selectAdvance(page, dto);
        return dFileIPage;
    }

//    @Override
//    public List<ProductType> SelectProductTypeLevel() {
//
//        QueryWrapper<ProductType> qw = new QueryWrapper<>();
//        qw.lambda().eq(ProductType::getLevel,1);
//
//        return productTypeMapper.selectList(qw);
//    }


    @Override
    public List<ProductType> levelOne() {
        QueryWrapper<ProductType> qw = new QueryWrapper<>();
        qw.lambda().eq(ProductType::getLevel,1);

        return productTypeMapper.selectList(qw);
    }

    @Override
    public List<ProductType> levelTwo() {
        QueryWrapper<ProductType> qw = new QueryWrapper<>();
        qw.lambda().eq(ProductType::getLevel,2);

        return productTypeMapper.selectList(qw);
    }


}
